/**
 * Universidad Del Valle De Guatemala.
 * Algoritmos y Estructuras de Datos.
 * Sección 20.
 * Miguel Enrique Zea Arenales.
 * Carné 09238.
 * Hoja de Trabajo 8.
 * 08/11/2012
 */
package shortestpath;

/**
 * Clase que define al objeto arco empleado para realizar conexiones entre 
 * vértices.
 */
public class Edge<V> {
    private int weight; // Peso del arco.
    private V origin, destination; // Vértices que interconecta el arco.
    
    /**
     * Pre: debe existir por lo menos 1 nodo en el grafo.
     * Post: se establece la conexión con peso entre los nodos especificados. 
     */
    public Edge(V vtx1, V vtx2, int w) { 
        this.weight = w;
        this.origin = vtx1;
        this.destination = vtx2;
    }
    
    /**
     * Pre: ninguna.
     * Post: se retorna el peso del arco.
     */
    public int getWeight() {
        return this.weight;
    }
    
    /**
     * Pre: ninguna.
     * Post: se retorna el vértice de origen del arco.
     */
    public V getOrigin() {
        return this.origin;
    }
    
    /**
     * Pre: ninguna.
     * Post: se retorna el vértice de destino del arco.
     */
    public V getDestination() {
        return this.destination;
    }
}
